#ifndef MAIL_H
#define MAIL_H

#include <QWidget>
#include <QTcpSocket>
#include <QStandardItemModel>  // 用于设置QTableView数据模型

namespace Ui {
class Mail;
}

class Mainpage;  // 前向声明

class Mail : public QWidget
{
    Q_OBJECT

public:
    explicit Mail(const QString &employeeId, QWidget *parent = nullptr);
    ~Mail();

protected:
    // 用于拖动窗口的事件处理函数
    void mousePressEvent(QMouseEvent *event) override;
    void mouseMoveEvent(QMouseEvent *event) override;

    void paintEvent(QPaintEvent *event) override;

private slots:
    void on_returnButton_clicked();

private:
    void fetchAndDisplayData();  // 获取数据并填充到界面的方法
    QString getStatusString(int status);  // 将申请状态转换为字符串的方法

    Ui::Mail *ui;
    QString employeeId;  // 存储工号
    QTcpSocket *tcpSocket;  // 用于与服务器通信
    QStandardItemModel *resignatureModel;
    QStandardItemModel *vacationModel;
    QStandardItemModel *faceModel;

    // 用于记录拖动时鼠标位置的成员变量
    QPoint m_dragPosition;

    // 添加用于判断是否点击标题栏的成员变量
    bool m_isTitleBarClicked = false;
};

#endif // MAIL_H
